function showSearchResult() {   

    var gridUi = $( "gridUi" );
    if( gridUi != null ) { 
        gridUi.innerHTML = '<br/>' ;
    }

    var url = getAjaxCallUrl();
    var params = getAjaxParams(); 
    
    var onSuccessListener = showSearchResult_SuccessListener ;
    var onFailureListener = showSearchResult_FailureListener ;
    var onCreateListener = showSearchResult_CreateListener ;
    var onCompleteListener = showSearchResult_CompleteListener ;

    //alert("utl:"+url+"?"+params);
    callAjax( url, params, onSuccessListener, onFailureListener, onCreateListener, onCompleteListener  );    
}

function showSearchResult_CreateListener( ) {
	var localDebug = false;
	if( localDebug ) { 
		var msg = "showSearchResult_CreateListener";
	    alert( msg );
	}
	setLoadingLogoVisible( true );
}

function showSearchResult_CompleteListener( ) {
	var localDebug = false;
	if( localDebug ) { 
		var msg = "showSearchResult_CompleteListener";
	    alert( msg );
	}
	setLoadingLogoVisible( false );
}

function showSearchResult_FailureListener( transport ) { 
    var msg = "서버가 응답하지 않습니다.!!";
    alert( msg );
}

function showSearchResult_SuccessListener( transport ) {
	
	//setLoadingLogoVisible( false );
	
    var localDebug = false ; 
    
    // ajax transport 검증
    var readyState = transport.readyState;

    /* transport.readyState  
     
    0 UNINITIALIZED 오브젝트는 작성되어 있으나 아직 초기화되어 있지 않다.(open()이 불리지 않았음)  
    1  LOADING 오브젝트가 작성되었으나 아직 send()가 불리지 않았다. 
    2   LOADED send()가 불렸지만 ststus와 header가 아직 도착하지 않았다.  
    3  INTERACTIVE  data일부를 받았다. 
    4   COMPLETED data전부를 받았다. 완전한 데이터가 이용가능 
    */

    if ( readyState == 3 ) { // 데이터를 완전히 받았을 경우...
        alert( "ERROR: 서버로 부터 데이터를 완전히 받지 않았습니다.!" ); 
    } else if( readyState == 4 ) { // 데이터를 완전히 받았을 경우...
        //alert( "서버로 부터 데이터를 완전히 받았습니다.!" ); 
        // go on 
    } else {
        alert( "ERROR: transport.readyState = " + readyState );
    }
    // end of ajax transport 검증
    
    if( localDebug ) {  
        alert( transport.responseText  );
    }

    var serverResponse = transport.responseText.trim();
    serverResponse = serverResponse.replaceAll( " />" , "/>" );

    if( serverResponse.length < 1 ) {
        // if server response is blank
        alert( "ERROR-001: 지도코드 서버의 응답이 없거나 느립니다!" );
        return;
    } 

    // convert xml server response to json object  
    
    var xml = null ;
    if( true ) {
        xml = transport.responseXML; 
    } else {
        xml = parseXml( serverResponse );
    } 

    var jsonText = xml2json( xml ); 
    
    var index = 0; 

    jsonText = jsonText.replace( "undefined", "" ); // debugging code 
    
    if( false ) { 
		alert( index + jsonText ); index ++ ;
		jsonText = jsonText.replaceAll( "null", '""' ); // debugging code 
		alert( index + jsonText ); index ++ ;
		jsonText = jsonText.replaceAll( ".", '_' ); // debugging code 
    } 

    var jsonObj = eval("(" + jsonText + ")") 
    // end of converting xml server response to json object
    
    var searchResult = jsonObj.searchResult ; 
    
    if( searchResult == null ) { 
        alert( "검색 결과가 없습니다.!" );
        return;
    }

    var id = searchResult.id ;
    
    var errorCode = parseInt( "" + searchResult.errorCode ) ; 
    
    if( errorCode != 0 ) { 
        alert( searchResult.errorMessage );
        
        return;
    }
    
    var entries = searchResult.items.route ;
    if( entries == null ) {
    	entries = searchResult.items.station;
    }
    if( entries == null ) {
    	entries = searchResult.items.bus;
    }
    
    var itemCount = searchResult.itemCount ; 

    var html = ['<ul class="gridUi">']; 
	
	if( entries != null ) { 
        if( itemCount > 1 ) {
			for (var i = 0; i < entries.length; i++) {
			  var entry = entries[i]; 
			  var title = getEntryTag( entry );
			  html.push('<li class="gridUi"><a href="#">', title, '</a></li>'); 
			}
		} else {
			var entry = entries;
			var title = getEntryTag( entry );
			html.push('<li class="gridUi"><a href="#">', title, '</a></li>');
		}
	} else { 
	}
	html.push('</ul>');
	
	var gridUi = $( "gridUi" );
	if( gridUi != null ) { 
	   gridUi.innerHTML = html.join(''); 
	}  
	 
}

function setLoadingLogoVisible( onOff ) {
    var loadingLogoPane = $( "loadingLogoPane" ) ; 
    
    try {  
        var styleObj = loadingLogoPane.style;
        
        if( styleObj != null ) { 
            if( onOff ) {
                if( false ) { 
	                var parent = getObject( "mapImageTag" ) ;  
	                var width = getNumber( "width" ) ;
	                var height = getNumber( "height" ) ;
	                
	                styleObj.left = (width - 33) / 2  ;
	                styleObj.top = (height - 33) / 2  ;
                }
            } 
            styleObj.visibility = onOff ? "visible" : "hidden" ; 
        } 
    } catch( e ) { 
    }
}
